// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package org.achartengine.chart;
import android.graphics.Canvas;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.PathEffect;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import org.achartengine.model.Point;
import org.achartengine.model.SeriesSelection;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.BasicStroke;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.util.MathHelper;
// Referenced classes of package org.achartengine.chart:
// AbstractChart, ScatterChart, ClickableArea
public abstract class XYChart extends AbstractChart
{
private float a;
private float b;
private Point c;
private Rect d;
private final Map e;
private Map f;
protected XYMultipleSeriesDataset mDataset;
protected XYMultipleSeriesRenderer mRenderer;
protected XYChart()
{
e = new HashMap();
f = new HashMap();
}
public XYChart(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
e = new HashMap();
f = new HashMap();
mDataset = xymultipleseriesdataset;
mRenderer = xymultipleseriesrenderer;
}
private int a(android.graphics.Paint.Align align)
{
int i = 4;
if (align == android.graphics.Paint.Align.LEFT)
{
i = -i;
}
return i;
}
private List a(List list)
{
ArrayList arraylist = new ArrayList(list);
Iterator iterator = list.iterator();
do
{
if (!iterator.hasNext())
{
break;
}
Double double1 = (Double)iterator.next();
if (double1.isNaN())
{
arraylist.remove(double1);
}
} while (true);
return arraylist;
}
private void a(Canvas canvas, float f1, boolean flag)
{
if (flag)
{
canvas.scale(1.0F / a, a);
canvas.translate(b, -b);
canvas.rotate(-f1, c.getX(), c.getY());
return;
} else
{
canvas.rotate(f1, c.getX(), c.getY());
canvas.translate(-b, b);
canvas.scale(a, 1.0F / a);
return;
}
}
private void a(android.graphics.Paint.Cap cap, android.graphics.Paint.Join join, float f1, android.graphics.Paint.Style style, PathEffect patheffect, Paint paint)
{
paint.setStrokeCap(cap);
paint.setStrokeJoin(join);
paint.setStrokeMiter(f1);
paint.setPathEffect(patheffect);
paint.setStyle(style);
}
protected abstract ClickableArea[] clickableAreasForPoints(List list, List list1, float f1, int i, int j);
public void draw(Canvas canvas, int i, int j, int k, int l, Paint paint)
{
int i10;
paint.setAntiAlias(mRenderer.isAntialiasing());
int i1 = getLegendSize(mRenderer, l / 5, mRenderer.getAxisTitleTextSize());
int ai[] = mRenderer.getMargins();
int j1 = i + ai[1];
int k1 = j + ai[0];
int l1 = (i + k) - ai[3];
int i2 = mDataset.getSeriesCount();
String as[] = new String[i2];
for (int j2 = 0; j2 < i2; j2++)
{
as[j2] = mDataset.getSeriesAt(j2).getTitle();
}
int k2;
int l2;
org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation orientation;
int i3;
int j3;
int k3;
boolean flag;
int l3;
int j4;
double ad[];
double ad1[];
double ad2[];
double ad3[];
boolean aflag[];
boolean aflag1[];
boolean aflag2[];
boolean aflag3[];
int k4;
double ad4[];
double ad5[];
int l4;
int i5;
boolean flag1;
int j5;
XYMultipleSeriesRenderer xymultipleseriesrenderer;
int k5;
int l5;
XYMultipleSeriesRenderer xymultipleseriesrenderer1;
int i6;
int j6;
int k6;
boolean flag2;
boolean flag3;
boolean flag4;
List list;
Map map;
Double adouble[];
double d1;
double d2;
double d3;
XYMultipleSeriesRenderer xymultipleseriesrenderer2;
int l6;
boolean flag5;
int i7;
boolean flag6;
XYMultipleSeriesRenderer xymultipleseriesrenderer3;
int j7;
float f1;
int k7;
int l7;
android.graphics.Paint.Align align;
Double adouble1[];
int i8;
int j8;
Double double1;
float f2;
String s;
XYMultipleSeriesRenderer xymultipleseriesrenderer4;
int k8;
int l8;
int i9;
XYSeries xyseries;
int j9;
SimpleSeriesRenderer simpleseriesrenderer;
ArrayList arraylist;
ArrayList arraylist1;
float f3;
LinkedList linkedlist;
Exception exception;
SortedMap sortedmap;
int k9;
Iterator iterator;
int l9;
Rect rect;
float f4;
float f5;
java.util.Map.Entry entry;
double d4;
double d5;
XYSeries xyseries1;
int j10;
double d6;
double d7;
double d8;
double d9;
if (mRenderer.isFitLegend() && mRenderer.isShowLegend())
{
k2 = drawLegend(canvas, mRenderer, as, j1, l1, j, k, l, i1, paint, true);
} else
{
k2 = i1;
}
l2 = (j + l) - ai[2] - k2;
if (d == null)
{
d = new Rect();
}
d.set(j1, k1, l1, l2);
drawBackground(mRenderer, canvas, i, j, k, l, paint, false, 0);
if (paint.getTypeface() == null || mRenderer.getTextTypeface() != null && paint.getTypeface().equals(mRenderer.getTextTypeface()) || !paint.getTypeface().toString().equals(mRenderer.getTextTypefaceName()) || paint.getTypeface().getStyle() != mRenderer.getTextTypefaceStyle())
{
if (mRenderer.getTextTypeface() != null)
{
paint.setTypeface(mRenderer.getTextTypeface());
} else
{
paint.setTypeface(Typeface.create(mRenderer.getTextTypefaceName(), mRenderer.getTextTypefaceStyle()));
}
}
orientation = mRenderer.getOrientation();
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
int k10 = l1 - k2;
i3 = l2 + (k2 - 20);
j3 = k10;
} else
{
i3 = l2;
j3 = l1;
}
k3 = orientation.getAngle();
if (k3 == 90)
{
flag = true;
} else
{
flag = false;
}
a = (float)l / (float)k;
b = Math.abs(k - l) / 2;
if (a < 1.0F)
{
b = -1F * b;
}
c = new Point((i + k) / 2, (j + l) / 2);
if (flag)
{
a(canvas, k3, false);
}
l3 = 0x80000001;
for (int i4 = 0; i4 < i2; i4++)
{
l3 = Math.max(l3, mDataset.getSeriesAt(i4).getScaleNumber());
}
j4 = l3 + 1;
if (j4 >= 0) goto _L2; else goto _L1
_L1:
return;
_L2:
ad = new double[j4];
ad1 = new double[j4];
ad2 = new double[j4];
ad3 = new double[j4];
aflag = new boolean[j4];
aflag1 = new boolean[j4];
aflag2 = new boolean[j4];
aflag3 = new boolean[j4];
for (k4 = 0; k4 < j4; k4++)
{
ad[k4] = mRenderer.getXAxisMin(k4);
ad1[k4] = mRenderer.getXAxisMax(k4);
ad2[k4] = mRenderer.getYAxisMin(k4);
ad3[k4] = mRenderer.getYAxisMax(k4);
aflag[k4] = mRenderer.isMinXSet(k4);
aflag1[k4] = mRenderer.isMaxXSet(k4);
aflag2[k4] = mRenderer.isMinYSet(k4);
aflag3[k4] = mRenderer.isMaxYSet(k4);
if (e.get(Integer.valueOf(k4)) == null)
{
e.put(Integer.valueOf(k4), new double[4]);
}
}
ad4 = new double[j4];
ad5 = new double[j4];
l4 = 0;
while (l4 < i2)
{
xyseries1 = mDataset.getSeriesAt(l4);
j10 = xyseries1.getScaleNumber();
if (xyseries1.getItemCount() != 0)
{
if (!aflag[j10])
{
d9 = xyseries1.getMinX();
ad[j10] = Math.min(ad[j10], d9);
((double[])e.get(Integer.valueOf(j10)))[0] = ad[j10];
}
if (!aflag1[j10])
{
d8 = xyseries1.getMaxX();
ad1[j10] = Math.max(ad1[j10], d8);
((double[])e.get(Integer.valueOf(j10)))[1] = ad1[j10];
}
if (!aflag2[j10])
{
d7 = xyseries1.getMinY();
ad2[j10] = Math.min(ad2[j10], (float)d7);
((double[])e.get(Integer.valueOf(j10)))[2] = ad2[j10];
}
if (!aflag3[j10])
{
d6 = xyseries1.getMaxY();
ad3[j10] = Math.max(ad3[j10], (float)d6);
((double[])e.get(Integer.valueOf(j10)))[3] = ad3[j10];
}
}
l4++;
}
for (i5 = 0; i5 < j4; i5++)
{
if (ad1[i5] - ad[i5] != 0.0D)
{
ad4[i5] = (double)(j3 - j1) / (ad1[i5] - ad[i5]);
}
if (ad3[i5] - ad2[i5] != 0.0D)
{
ad5[i5] = (float)((double)(i3 - k1) / (ad3[i5] - ad2[i5]));
}
}
flag1 = false;
f = new HashMap();
j5 = 0;
_L7:
if (j5 >= i2) goto _L4; else goto _L3
_L3:
xyseries = mDataset.getSeriesAt(j5);
j9 = xyseries.getScaleNumber();
if (xyseries.getItemCount() != 0) goto _L6; else goto _L5
_L5:
j5++;
goto _L7
_L6:
simpleseriesrenderer = mRenderer.getSeriesRendererAt(j5);
arraylist = new ArrayList();
arraylist1 = new ArrayList();
f3 = Math.min(i3, (float)((double)i3 + ad5[j9] * ad2[j9]));
linkedlist = new LinkedList();
f.put(Integer.valueOf(j5), linkedlist);
xyseries;
JVM INSTR monitorenter ;
sortedmap = xyseries.getRange(ad[j9], ad1[j9], simpleseriesrenderer.isDisplayBoundingPoints());
k9 = -1;
iterator = sortedmap.entrySet().iterator();
_L8:
if (!iterator.hasNext())
{
break MISSING_BLOCK_LABEL_1654;
}
entry = (java.util.Map.Entry)iterator.next();
d4 = ((Double)entry.getKey()).doubleValue();
d5 = ((Double)entry.getValue()).doubleValue();
if (k9 >= 0)
{
break MISSING_BLOCK_LABEL_1395;
}
if (!isNullValue(d5) || isRenderNullValues())
{
k9 = xyseries.getIndexForKey(d4);
}
arraylist1.add(entry.getKey());
arraylist1.add(entry.getValue());
if (isNullValue(d5))
{
break MISSING_BLOCK_LABEL_1505;
}
arraylist.add(Float.valueOf((float)((double)j1 + ad4[j9] * (d4 - ad[j9]))));
arraylist.add(Float.valueOf((float)((double)i3 - ad5[j9] * (d5 - ad2[j9]))));
goto _L8
exception;
xyseries;
JVM INSTR monitorexit ;
throw exception;
label0:
{
if (!isRenderNullValues())
{
break label0;
}
arraylist.add(Float.valueOf((float)((double)j1 + ad4[j9] * (d4 - ad[j9]))));
arraylist.add(Float.valueOf((float)((double)i3 - ad5[j9] * -ad2[j9])));
}
goto _L8
if (arraylist.size() <= 0)
{
break MISSING_BLOCK_LABEL_1644;
}
drawSeries(xyseries, canvas, paint, arraylist, simpleseriesrenderer, f3, j5, orientation, k9);
linkedlist.addAll(Arrays.asList(clickableAreasForPoints(arraylist, arraylist1, f3, j5, k9)));
arraylist.clear();
arraylist1.clear();
k9 = -1;
linkedlist.add(null);
goto _L8
l9 = xyseries.getAnnotationCount();
if (l9 <= 0) goto _L10; else goto _L9
_L9:
paint.setColor(mRenderer.getLabelsColor());
rect = new Rect();
i10 = 0;
_L12:
if (i10 >= l9) goto _L10; else goto _L11
_L11:
f4 = (float)((double)j1 + ad4[j9] * (xyseries.getAnnotationX(i10) - ad[j9]));
f5 = (float)((double)i3 - ad5[j9] * (xyseries.getAnnotationY(i10) - ad2[j9]));
paint.getTextBounds(xyseries.getAnnotationAt(i10), 0, xyseries.getAnnotationAt(i10).length(), rect);
if (f4 < f4 + (float)rect.width() && f5 < (float)canvas.getHeight())
{
drawString(canvas, xyseries.getAnnotationAt(i10), f4, f5, paint);
}
break MISSING_BLOCK_LABEL_3432;
_L10:
if (arraylist.size() > 0)
{
drawSeries(xyseries, canvas, paint, arraylist, simpleseriesrenderer, f3, j5, orientation, k9);
linkedlist.addAll(Arrays.asList(clickableAreasForPoints(arraylist, arraylist1, f3, j5, k9)));
}
xyseries;
JVM INSTR monitorexit ;
flag1 = true;
goto _L5
_L4:
xymultipleseriesrenderer = mRenderer;
k5 = l - i3;
l5 = mRenderer.getMarginsColor();
drawBackground(xymultipleseriesrenderer, canvas, i, i3, k, k5, paint, true, l5);
drawBackground(mRenderer, canvas, i, j, k, ai[0], paint, true, mRenderer.getMarginsColor());
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
drawBackground(mRenderer, canvas, i, j, j1 - i, l - j, paint, true, mRenderer.getMarginsColor());
xymultipleseriesrenderer4 = mRenderer;
k8 = ai[3];
l8 = l - j;
i9 = mRenderer.getMarginsColor();
drawBackground(xymultipleseriesrenderer4, canvas, j3, j, k8, l8, paint, true, i9);
} else
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
xymultipleseriesrenderer1 = mRenderer;
i6 = k - j3;
j6 = l - j;
k6 = mRenderer.getMarginsColor();
drawBackground(xymultipleseriesrenderer1, canvas, j3, j, i6, j6, paint, true, k6);
drawBackground(mRenderer, canvas, i, j, j1 - i, l - j, paint, true, mRenderer.getMarginsColor());
}
if (mRenderer.isShowLabels() && flag1)
{
flag2 = true;
} else
{
flag2 = false;
}
flag3 = mRenderer.isShowGridX();
flag4 = mRenderer.isShowCustomTextGrid();
if (flag2 || flag3)
{
list = a(getXLabels(ad[0], ad1[0], mRenderer.getXLabels()));
map = getYLabels(ad2, ad3, j4);
if (flag2)
{
paint.setColor(mRenderer.getXLabelsColor());
paint.setTextSize(mRenderer.getLabelsTextSize());
paint.setTextAlign(mRenderer.getXLabelsAlign());
}
adouble = mRenderer.getXTextLabelLocations();
d1 = ad4[0];
d2 = ad[0];
d3 = ad1[0];
drawXLabels(list, adouble, canvas, paint, j1, k1, i3, d1, d2, d3);
drawYLabels(map, canvas, paint, j4, j1, j3, i3, ad5, ad2);
if (flag2)
{
paint.setColor(mRenderer.getLabelsColor());
for (l7 = 0; l7 < j4; l7++)
{
align = mRenderer.getYAxisAlign(l7);
adouble1 = mRenderer.getYTextLabelLocations(l7);
i8 = adouble1.length;
j8 = 0;
while (j8 < i8)
{
double1 = adouble1[j8];
if (ad2[l7] <= double1.doubleValue() && double1.doubleValue() <= ad3[l7])
{
f2 = (float)((double)i3 - ad5[l7] * (double1.doubleValue() - ad2[l7]));
s = mRenderer.getYTextLabel(double1, l7);
paint.setColor(mRenderer.getYLabelsColor(l7));
paint.setTextAlign(mRenderer.getYLabelsAlign(l7));
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
if (align == android.graphics.Paint.Align.LEFT)
{
canvas.drawLine(j1 + a(align), f2, j1, f2, paint);
drawText(canvas, s, j1, f2 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
} else
{
canvas.drawLine(j3, f2, j3 + a(align), f2, paint);
drawText(canvas, s, j3, f2 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
}
if (flag4)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(j1, f2, j3, f2, paint);
}
} else
{
canvas.drawLine(j3 - a(align), f2, j3, f2, paint);
drawText(canvas, s, j3 + 10, f2 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
if (flag4)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(j3, f2, j1, f2, paint);
}
}
}
j8++;
}
}
}
if (flag2)
{
paint.setColor(mRenderer.getLabelsColor());
f1 = mRenderer.getAxisTitleTextSize();
paint.setTextSize(f1);
paint.setTextAlign(android.graphics.Paint.Align.CENTER);
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
drawText(canvas, mRenderer.getXTitle(), i + k / 2, f1 + ((float)i3 + (4F * mRenderer.getLabelsTextSize()) / 3F + mRenderer.getXLabelsPadding()), paint, 0.0F);
k7 = 0;
while (k7 < j4)
{
if (mRenderer.getYAxisAlign(k7) == android.graphics.Paint.Align.LEFT)
{
drawText(canvas, mRenderer.getYTitle(k7), f1 + (float)i, j + l / 2, paint, -90F);
} else
{
drawText(canvas, mRenderer.getYTitle(k7), i + k, j + l / 2, paint, -90F);
}
k7++;
}
paint.setTextSize(mRenderer.getChartTitleTextSize());
drawText(canvas, mRenderer.getChartTitle(), i + k / 2, (float)j + mRenderer.getChartTitleTextSize(), paint, 0.0F);
} else
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
drawText(canvas, mRenderer.getXTitle(), i + k / 2, ((float)(j + l) - f1) + mRenderer.getXLabelsPadding(), paint, -90F);
drawText(canvas, mRenderer.getYTitle(), j3 + 20, j + l / 2, paint, 0.0F);
paint.setTextSize(mRenderer.getChartTitleTextSize());
drawText(canvas, mRenderer.getChartTitle(), f1 + (float)i, k1 + l / 2, paint, 0.0F);
}
}
}
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
xymultipleseriesrenderer3 = mRenderer;
j7 = j + (int)mRenderer.getXLabelsPadding();
drawLegend(canvas, xymultipleseriesrenderer3, as, j1, j3, j7, k, l, k2, paint, false);
} else
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
a(canvas, k3, true);
xymultipleseriesrenderer2 = mRenderer;
l6 = j + (int)mRenderer.getXLabelsPadding();
drawLegend(canvas, xymultipleseriesrenderer2, as, j1, j3, l6, k, l, k2, paint, false);
a(canvas, k3, false);
}
if (mRenderer.isShowAxes())
{
paint.setColor(mRenderer.getAxesColor());
canvas.drawLine(j1, i3, j3, i3, paint);
flag5 = false;
i7 = 0;
while (i7 < j4 && !flag5)
{
if (mRenderer.getYAxisAlign(i7) == android.graphics.Paint.Align.RIGHT)
{
flag6 = true;
} else
{
flag6 = false;
}
i7++;
flag5 = flag6;
}
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
canvas.drawLine(j1, k1, j1, i3, paint);
if (flag5)
{
canvas.drawLine(j3, k1, j3, i3, paint);
}
} else
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
canvas.drawLine(j3, k1, j3, i3, paint);
}
}
if (flag)
{
a(canvas, k3, true);
return;
}
goto _L1
i10++;
goto _L12
}
protected void drawChartValuesText(Canvas canvas, XYSeries xyseries, SimpleSeriesRenderer simpleseriesrenderer, Paint paint, List list, int i, int j)
{
if (list.size() > 1)
{
float f1 = ((Float)list.get(0)).floatValue();
float f2 = ((Float)list.get(1)).floatValue();
int l = 0;
while (l < list.size())
{
if (l == 2)
{
if (Math.abs(((Float)list.get(2)).floatValue() - ((Float)list.get(0)).floatValue()) > (float)simpleseriesrenderer.getDisplayChartValuesDistance() || Math.abs(((Float)list.get(3)).floatValue() - ((Float)list.get(1)).floatValue()) > (float)simpleseriesrenderer.getDisplayChartValuesDistance())
{
drawText(canvas, getLabel(simpleseriesrenderer.getChartValuesFormat(), xyseries.getY(j)), ((Float)list.get(0)).floatValue(), ((Float)list.get(1)).floatValue() - simpleseriesrenderer.getChartValuesSpacing(), paint, 0.0F);
drawText(canvas, getLabel(simpleseriesrenderer.getChartValuesFormat(), xyseries.getY(j + 1)), ((Float)list.get(2)).floatValue(), ((Float)list.get(3)).floatValue() - simpleseriesrenderer.getChartValuesSpacing(), paint, 0.0F);
f1 = ((Float)list.get(2)).floatValue();
f2 = ((Float)list.get(3)).floatValue();
}
} else
if (l > 2 && (Math.abs(((Float)list.get(l)).floatValue() - f1) > (float)simpleseriesrenderer.getDisplayChartValuesDistance() || Math.abs(((Float)list.get(l + 1)).floatValue() - f2) > (float)simpleseriesrenderer.getDisplayChartValuesDistance()))
{
drawText(canvas, getLabel(simpleseriesrenderer.getChartValuesFormat(), xyseries.getY(j + l / 2)), ((Float)list.get(l)).floatValue(), ((Float)list.get(l + 1)).floatValue() - simpleseriesrenderer.getChartValuesSpacing(), paint, 0.0F);
f1 = ((Float)list.get(l)).floatValue();
f2 = ((Float)list.get(l + 1)).floatValue();
}
l += 2;
}
} else
{
for (int k = 0; k < list.size(); k += 2)
{
drawText(canvas, getLabel(simpleseriesrenderer.getChartValuesFormat(), xyseries.getY(j + k / 2)), ((Float)list.get(k)).floatValue(), ((Float)list.get(k + 1)).floatValue() - simpleseriesrenderer.getChartValuesSpacing(), paint, 0.0F);
}
}
}
public abstract void drawSeries(Canvas canvas, Paint paint, List list, SimpleSeriesRenderer simpleseriesrenderer, float f1, int i, int j);
protected void drawSeries(XYSeries xyseries, Canvas canvas, Paint paint, List list, SimpleSeriesRenderer simpleseriesrenderer, float f1, int i,
org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation orientation, int j)
{
BasicStroke basicstroke = simpleseriesrenderer.getStroke();
android.graphics.Paint.Cap cap = paint.getStrokeCap();
android.graphics.Paint.Join join = paint.getStrokeJoin();
float f2 = paint.getStrokeMiter();
PathEffect patheffect = paint.getPathEffect();
android.graphics.Paint.Style style = paint.getStyle();
if (basicstroke != null)
{
float af[] = basicstroke.getIntervals();
DashPathEffect dashpatheffect = null;
if (af != null)
{
dashpatheffect = new DashPathEffect(basicstroke.getIntervals(), basicstroke.getPhase());
}
a(basicstroke.getCap(), basicstroke.getJoin(), basicstroke.getMiter(), android.graphics.Paint.Style.FILL_AND_STROKE, dashpatheffect, paint);
}
drawSeries(canvas, paint, list, simpleseriesrenderer, f1, i, j);
if (isRenderPoints(simpleseriesrenderer))
{
ScatterChart scatterchart = getPointsChart();
if (scatterchart != null)
{
scatterchart.drawSeries(canvas, paint, list, simpleseriesrenderer, f1, i, j);
}
}
paint.setTextSize(simpleseriesrenderer.getChartValuesTextSize());
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
paint.setTextAlign(android.graphics.Paint.Align.CENTER);
} else
{
paint.setTextAlign(android.graphics.Paint.Align.LEFT);
}
if (simpleseriesrenderer.isDisplayChartValues())
{
paint.setTextAlign(simpleseriesrenderer.getChartValuesTextAlign());
drawChartValuesText(canvas, xyseries, simpleseriesrenderer, paint, list, i, j);
}
if (basicstroke != null)
{
a(cap, join, f2, style, patheffect, paint);
}
}
protected void drawText(Canvas canvas, String s, float f1, float f2, Paint paint, float f3)
{
float f4 = f3 + (float)(-mRenderer.getOrientation().getAngle());
if (f4 != 0.0F)
{
canvas.rotate(f4, f1, f2);
}
drawString(canvas, s, f1, f2, paint);
if (f4 != 0.0F)
{
canvas.rotate(-f4, f1, f2);
}
}
protected void drawXLabels(List list, Double adouble[], Canvas canvas, Paint paint, int i, int j, int k,
double d1, double d2, double d3)
{
int l = list.size();
boolean flag = mRenderer.isShowLabels();
boolean flag1 = mRenderer.isShowGridY();
for (int i1 = 0; i1 < l; i1++)
{
double d4 = ((Double)list.get(i1)).doubleValue();
float f1 = (float)((double)i + d1 * (d4 - d2));
if (flag)
{
paint.setColor(mRenderer.getXLabelsColor());
canvas.drawLine(f1, k, f1, (float)k + mRenderer.getLabelsTextSize() / 3F, paint);
drawText(canvas, getLabel(mRenderer.getLabelFormat(), d4), f1, (float)k + (4F * mRenderer.getLabelsTextSize()) / 3F + mRenderer.getXLabelsPadding(), paint, mRenderer.getXLabelsAngle());
}
if (flag1)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(f1, k, f1, j, paint);
}
}
drawXTextLabels(adouble, canvas, paint, flag, i, j, k, d1, d2, d3);
}
protected void drawXTextLabels(Double adouble[], Canvas canvas, Paint paint, boolean flag, int i, int j, int k,
double d1, double d2, double d3)
{
boolean flag1 = mRenderer.isShowCustomTextGrid();
if (flag)
{
paint.setColor(mRenderer.getXLabelsColor());
int l = adouble.length;
for (int i1 = 0; i1 < l; i1++)
{
Double double1 = adouble[i1];
if (d2 > double1.doubleValue() || double1.doubleValue() > d3)
{
continue;
}
float f1 = (float)((double)i + d1 * (double1.doubleValue() - d2));
paint.setColor(mRenderer.getXLabelsColor());
canvas.drawLine(f1, k, f1, (float)k + mRenderer.getLabelsTextSize() / 3F, paint);
drawText(canvas, mRenderer.getXTextLabel(double1), f1, (float)k + (4F * mRenderer.getLabelsTextSize()) / 3F, paint, mRenderer.getXLabelsAngle());
if (flag1)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(f1, k, f1, j, paint);
}
}
}
}
protected void drawYLabels(Map map, Canvas canvas, Paint paint, int i, int j, int k, int l,
double ad[], double ad1[])
{
org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation orientation = mRenderer.getOrientation();
boolean flag = mRenderer.isShowGridX();
boolean flag1 = mRenderer.isShowLabels();
int i1 = 0;
do
{
if (i1 >= i)
{
break;
}
paint.setTextAlign(mRenderer.getYLabelsAlign(i1));
List list = (List)map.get(Integer.valueOf(i1));
int j1 = list.size();
int k1 = 0;
while (k1 < j1)
{
double d1 = ((Double)list.get(k1)).doubleValue();
android.graphics.Paint.Align align = mRenderer.getYAxisAlign(i1);
boolean flag2;
float f1;
if (mRenderer.getYTextLabel(Double.valueOf(d1), i1) != null)
{
flag2 = true;
} else
{
flag2 = false;
}
f1 = (float)((double)l - ad[i1] * (d1 - ad1[i1]));
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.HORIZONTAL)
{
if (flag1 && !flag2)
{
paint.setColor(mRenderer.getYLabelsColor(i1));
if (align == android.graphics.Paint.Align.LEFT)
{
canvas.drawLine(j + a(align), f1, j, f1, paint);
drawText(canvas, getLabel(mRenderer.getLabelFormat(), d1), (float)j - mRenderer.getYLabelsPadding(), f1 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
} else
{
canvas.drawLine(k, f1, k + a(align), f1, paint);
drawText(canvas, getLabel(mRenderer.getLabelFormat(), d1), (float)k + mRenderer.getYLabelsPadding(), f1 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
}
}
if (flag)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(j, f1, k, f1, paint);
}
} else
if (orientation == org.achartengine.renderer.XYMultipleSeriesRenderer.Orientation.VERTICAL)
{
if (flag1 && !flag2)
{
paint.setColor(mRenderer.getYLabelsColor(i1));
canvas.drawLine(k - a(align), f1, k, f1, paint);
drawText(canvas, getLabel(mRenderer.getLabelFormat(), d1), (float)(k + 10) + mRenderer.getYLabelsPadding(), f1 - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
}
if (flag)
{
paint.setColor(mRenderer.getGridColor());
canvas.drawLine(k, f1, j, f1, paint);
}
}
k1++;
}
i1++;
} while (true);
}
public double[] getCalcRange(int i)
{
return (double[])e.get(Integer.valueOf(i));
}
public abstract String getChartType();
public XYMultipleSeriesDataset getDataset()
{
return mDataset;
}
public double getDefaultMinimum()
{
return 1.7976931348623157E+308D;
}
public ScatterChart getPointsChart()
{
return null;
}
public XYMultipleSeriesRenderer getRenderer()
{
return mRenderer;
}
protected Rect getScreenR()
{
return d;
}
public SeriesSelection getSeriesAndPointForScreenCoordinate(Point point)
{
if (f != null)
{
for (int i = -1 + f.size(); i >= 0; i--)
{
int j = 0;
if (f.get(Integer.valueOf(i)) == null)
{
continue;
}
for (Iterator iterator = ((List)f.get(Integer.valueOf(i))).iterator(); iterator.hasNext(); j++)
{
ClickableArea clickablearea = (ClickableArea)iterator.next();
if (clickablearea == null)
{
continue;
}
RectF rectf = clickablearea.getRect();
if (rectf != null && rectf.contains(point.getX(), point.getY()))
{
return new SeriesSelection(i, j, clickablearea.getX(), clickablearea.getY());
}
}
}
}
return super.getSeriesAndPointForScreenCoordinate(point);
}
protected List getXLabels(double d1, double d2, int i)
{
return MathHelper.getLabels(d1, d2, i);
}
protected Map getYLabels(double ad[], double ad1[], int i)
{
HashMap hashmap = new HashMap();
for (int j = 0; j < i; j++)
{
hashmap.put(Integer.valueOf(j), a(MathHelper.getLabels(ad[j], ad1[j], mRenderer.getYLabels())));
}
return hashmap;
}
protected boolean isRenderNullValues()
{
return false;
}
public boolean isRenderPoints(SimpleSeriesRenderer simpleseriesrenderer)
{
return false;
}
public void setCalcRange(double ad[], int i)
{
e.put(Integer.valueOf(i), ad);
}
protected void setDatasetRenderer(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
mDataset = xymultipleseriesdataset;
mRenderer = xymultipleseriesrenderer;
}
protected void setScreenR(Rect rect)
{
d = rect;
}
public double[] toRealPoint(float f1, float f2)
{
return toRealPoint(f1, f2, 0);
}
public double[] toRealPoint(float f1, float f2, int i)
{
double d1 = mRenderer.getXAxisMin(i);
double d2 = mRenderer.getXAxisMax(i);
double d3 = mRenderer.getYAxisMin(i);
double d4 = mRenderer.getYAxisMax(i);
if (d != null)
{
double ad1[] = new double[2];
ad1[0] = d1 + ((double)(f1 - (float)d.left) * (d2 - d1)) / (double)d.width();
ad1[1] = d3 + ((double)((float)(d.top + d.height()) - f2) * (d4 - d3)) / (double)d.height();
return ad1;
} else
{
double ad[] = new double[2];
ad[0] = f1;
ad[1] = f2;
return ad;
}
}
public double[] toScreenPoint(double ad[])
{
return toScreenPoint(ad, 0);
}
public double[] toScreenPoint(double ad[], int i)
{
double d1 = mRenderer.getXAxisMin(i);
double d2 = mRenderer.getXAxisMax(i);
double d3 = mRenderer.getYAxisMin(i);
double d4 = mRenderer.getYAxisMax(i);
if (!mRenderer.isMinXSet(i) || !mRenderer.isMaxXSet(i) || !mRenderer.isMinXSet(i) || !mRenderer.isMaxYSet(i))
{
double ad1[] = getCalcRange(i);
d1 = ad1[0];
d2 = ad1[1];
d3 = ad1[2];
d4 = ad1[3];
}
if (d != null)
{
double ad2[] = new double[2];
ad2[0] = ((ad[0] - d1) * (double)d.width()) / (d2 - d1) + (double)d.left;
ad2[1] = ((d4 - ad[1]) * (double)d.height()) / (d4 - d3) + (double)d.top;
ad = ad2;
}
return ad;
}
}